package com.colorlight.cloud.gateway.api.message.convert;

import com.colorlight.cloud.gateway.api.message.constraint.schedule.ScheduleActions;
import com.colorlight.cloud.gateway.api.message.model.Msg;
import com.iot.proto.gateway.Gateway;

/**
 * @author Demon
 * 把二进制文件转为对应得实体类
 * 由于上报得消息都是 bytes 上层需要将bytes转为 MessageLite
 * 顶层约束
 */
public interface MessageTransition {
	/**
	 * 消息转换的一步
	 *
	 * @param bytes 二进制文件
	 * @return 返回为proto类
	 **/
	Gateway.Msg bytesTransFormMessageLite(byte[] bytes);
	
	
	/**
	 * 消息转化
	 * @param sources 原始消息
	 * @param scheduleActions 指令类型
	 * @author Demon
	 * @date 22/1/2024/上午11:27
	 * @return 封装消息
	 **/
	Msg<ScheduleActions> toMsg(Gateway.Msg sources, ScheduleActions scheduleActions);
}
